找传奇、传世资源到传世资源站!

C# 生产管理系统源码(含数据库)

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

这是一个结合SQL Server数据库和TCP通讯的生产管理系统,ip地址和端口号可以根据本地ip设置
from clipboard private void WindowLoaded(object sender, RoutedEventArgs e)
        {
            ComboBoxLoad();
        }

        private void ComboBoxLoad()    //加载ip地址下拉框
        {
            cobIpAddr.Items.Add(Common.GetLocalIpAddress());
            if (cobIpAddr.Items.Count > 0)
            {
                cobIpAddr.SelectedIndex = 0;
                startListenButton.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
            }
        }

        private void RestartButtonClicked(object sender, RoutedEventArgs e)    //重启按键点击事件
        {
            System.Reflection.Assembly.GetEntryAssembly();
            System.Diagnostics.Process.Start(AppDomain.CurrentDomain.BaseDirectory "/ProductSever.exe");
            Application.Current.Shutdown();
        }

        private void Listen()    //监听函数
        {
            if (sever == null)
                return;
            while (!stopFlag)
            {
                if (sever.Pending())  //判读是否有连接请求 这样可以终止
                {
                    TcpClient client = sever.AcceptTcpClient();  //接受接受连接请求
                    dicClient.Add(client.Client.RemoteEndPoint.ToString(), client);
                    listClient.Add(client);
                    UpdateUIInterface(0, client.Client.RemoteEndPoint.ToString() " Success Link In! (" DateTime.Now.ToString() ")");
                    UpdateUIInterface(1, "Success Connection");
                    num ;
                    ThreadPool.QueueUserWorkItem(Receive, (object)client);
                    RefleshClientIpList();
                    UpdateUIInterface(2, num.ToString());
                }
                Thread.Sleep(50);
            }
        }

        private void Receive(object state)     //接收数据函数
        {
            TcpClient tcpclient = state as TcpClient;
            NetworkStream ns = tcpclient.GetStream();
            ArrayList reclist = new ArrayList();// 接受存储 动态数组
            byte[] recbuffer = new byte[1024 * 1024 * 5];
            while (!stopFlag)
            {
                while (ns.DataAvailable && !stopFlag)
                {
                    int r = ns.Read(recbuffer, 0, 1024);  //读取缓冲区字节数
                    if (r < 1024 * 1024 * 5)
                    {
                        for (int i = 0; i < r; i )
                        {
                            if (i < r - 3 && recbuffer[i] == 0xF0 && recbuffer[i 1] == 0x5A && recbuffer[i 2] == 0xA5)
                            {
                                reclist.Clear();
                                reclist.Add(recbuffer[i]);
                            }
                            else reclist.Add(recbuffer[i]);
                        }
                    }
                    else
                        reclist.Add(recbuffer);
                }
                if (reclist.Count > 0)
                {
                    string recstr = Encoding.UTF8.GetString((byte[])reclist.ToArray(typeof(byte)));
                    UpdateUIInterface(0, tcpclient.Client.RemoteEndPoint.ToString() " " recstr);
                    UpdateUIInterface(1, "Receive succeed");
                    byte[] recData = (byte[])reclist.ToArray(typeof(byte));
                    receiveBytesCount = recData.Length;
                    Process(recData, ns);
                    UpdateUIInterface(3, receiveBytesCount.ToString());
                }
                reclist.Clear();
                Thread.Sleep(20);
            }            
        }

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复